home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ietf / urn / urn-archives / urn-ietf.archive.9611 / 000181_owner-urn-ietf _Mon Nov 18 17:03:28 1996.msg < prev    next >
Internet Message Format  |  1997-02-19  |  13KB

  1. Received: (from daemon@localhost) by services.bunyip.com (8.6.10/8.6.9) id RAA04463 for urn-ietf-out; Mon, 18 Nov 1996 17:03:28 -0500
  2. Received: from mocha.bunyip.com (mocha.Bunyip.Com [192.197.208.1]) by services.bunyip.com (8.6.10/8.6.9) with SMTP id RAA04456 for <urn-ietf@services.bunyip.com>; Mon, 18 Nov 1996 17:03:23 -0500
  3. Received: from windrose.omaha.ne.us by mocha.bunyip.com with SMTP (5.65a/IDA-1.4.2b/CC-Guru-2b)
  4.         id AA16770  (mail destined for urn-ietf@services.bunyip.com); Mon, 18 Nov 96 17:03:14 -0500
  5. Received: by privateer.windrose.omaha.ne.us; Mon Nov 18 16:01 CST 1996
  6. Message-Id: <3290DCA4.28AC@ds.internic.net>
  7. Date: Mon, 18 Nov 1996 16:01:08 -0600
  8. From: Ryan Moats <jayhawk@ds.internic.net>
  9. Organization: InterNIC Directory and Database Services
  10. X-Mailer: Mozilla 3.0 (X11; I; SunOS 5.5 sun4c)
  11. Mime-Version: 1.0
  12. To: internet-drafts@ietf.org
  13. Cc: urn-ietf@bunyip.com
  14. Subject: [URN] URN Syntax -01 i-d submission
  15. Content-Type: text/plain; charset=us-ascii; name="urn.syntax.txt"
  16. Content-Transfer-Encoding: 7bit
  17. Content-Disposition: inline; filename="urn.syntax.txt"
  18. Sender: owner-urn-ietf@services.bunyip.com
  19. Precedence: bulk
  20. Reply-To: Ryan Moats <jayhawk@ds.internic.net>
  21. Errors-To: owner-urn-ietf@bunyip.com
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28. Internet-Draft                                                Ryan Moats
  29. draft-ietf-urn-syntax-01.txt                                        AT&T
  30. Expires in six months                                      November 1996
  31.  
  32.  
  33.                                URN Syntax
  34.                  Filename: draft-ietf-urn-syntax-01.txt
  35.  
  36.  
  37. Status of This Memo
  38.  
  39.       This document is an Internet-Draft.  Internet-Drafts are working
  40.       documents of the Internet Engineering Task Force (IETF), its
  41.       areas, and its working groups.  Note that other groups may also
  42.       distribute working documents as Internet-Drafts.
  43.  
  44.       Internet-Drafts are draft documents valid for a maximum of six
  45.       months and may be updated, replaced, or obsoleted by other
  46.       documents at any time.  It is inappropriate to use Internet-
  47.       Drafts as reference material or to cite them other than as ``work
  48.       in progress.''
  49.  
  50.       To learn the current status of any Internet-Draft, please check
  51.       the ``1id-abstracts.txt'' listing contained in the Internet-
  52.       Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net
  53.       (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East
  54.       Coast), or ftp.isi.edu (US West Coast).
  55.  
  56.  
  57. Abstract
  58.  
  59.    Uniform Resource Names (URNs) are intended to serve as persistent
  60.    resource identifiers. This document sets forward the canonical syntax
  61.    for URNs.  Support for both existing legacy and new namespaces is
  62.    discussed. Requirements for URN presentation and transmission are
  63.    presented.  Finally, there is a discussion of URN equivalence and how
  64.    to determine it.
  65.  
  66. 1. Introduction
  67.  
  68.    Uniform Resource Names (URNs) are intended to serve as persistent
  69.    resource identifiers and are designed to make it easy to map other
  70.    namespaces (which share the properties of URNs) into URN-space. The
  71.    URN syntax therefore provides a means to encode character data in a
  72.    form that can be sent in existing protocols, transcribed on most
  73.    keyboards, etc.
  74.  
  75.  
  76.  
  77.  
  78.  
  79. Expires 5/19/97                                                 [Page 1]
  80.  
  81.  
  82.  
  83.  
  84.  
  85. INTERNET DRAFT                 URN Syntax                  November 1996
  86.  
  87.  
  88. 2. Syntax
  89.  
  90.    All URNs have the following syntax:
  91.  
  92.                     <URN> ::= ["urn:"] <NID> ":" <NSS>
  93.  
  94.    <NID> is the Namespace Identifier, and <NSS> is the Namespace
  95.    Specific String.  The leading case-insensitive "urn:" sequence is
  96.    currently optional, as no closure on its definite presence or absence
  97.    has been reached.  The Namespace ID is used to determine the
  98.    _syntactic_ interpretation of the Namespace Specific String (as
  99.    discussed in [1]).
  100.  
  101.    RFC 1737 [2] presents additional requirements on URN encoding, which
  102.    all have implications as far as limiting syntax.  On the other hand,
  103.    the requirement to support existing legacy naming systems has the
  104.    effect of broadening syntax.  Thus, we discuss the acceptable syntax
  105.    for both the Namespace Identifier and the Namespace Specific String
  106.    separately.
  107.  
  108. 2.1 Namespace Identifier Syntax
  109.  
  110.    The following is the syntax for the Namespace Identifier. To (a) be
  111.    consistent with all potential resolution schemes and (b) not put any
  112.    undue constraints on any potential resolution scheme, the syntax for
  113.    the Namespace Identifier is:
  114.  
  115.    <NID>         ::= <letter> [ <let-hyp> ]
  116.  
  117.    <let-hyp>     ::= <letter> | "-" | <let-hyp>
  118.  
  119.    <letter>      ::= any one of the 52 alphabetic characters A through Z
  120.                      in upper case and a through z in lower case
  121.  
  122.    This is slightly more restrictive that what is stated in RFC 1738 [4]
  123.    (which allows the period "."). Further, the Namespace Identifier is
  124.    case insensitive, so that "ISBN" and "isbn" refer to the same
  125.    namespace.
  126.  
  127.    To avoid confusion with the optional "urn:" identifier, the NID "urn"
  128.    is reserved and may not be used.
  129.  
  130. 2.2 Namespace Specific String Syntax
  131.  
  132.    As required by 1737, there is a single canonical representation of
  133.    the NSS portion of an URN.   The format of this single canonical form
  134.    follows:
  135.  
  136.  
  137.  
  138.  
  139. Expires 5/19/97                                                 [Page 2]
  140.  
  141.  
  142.  
  143.  
  144.  
  145. INTERNET DRAFT                 URN Syntax                  November 1996
  146.  
  147.  
  148.    <NSS>        ::= <URN chars>*
  149.  
  150.    <URN chars>  ::= <trans> | "%" <hex> <hex>
  151.  
  152.    <trans>      ::= <upper> | <lower> | <number> | <other>
  153.  
  154.    <hex>        ::= <number> | "A" | "B" | "C" | "D" | "E" | "F"
  155.  
  156.    <upper>      ::= "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" |
  157.                     "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" |
  158.                     "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" |
  159.                     "Y" | "Z"
  160.  
  161.    <lower>      ::= "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" |
  162.                     "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" |
  163.                     "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" |
  164.                     "y" | "z"
  165.  
  166.    <number>     ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" |
  167.                     "8" | "9"
  168.  
  169.    <other>      ::= "(" | ")" | "+" | "
  170.                     ":" | "=" | "?" | "@"
  171.  
  172.  
  173.    Depending on the rules governing a namespace, valid identifiers in a
  174.    namespace might contain characters that are not members of the URN
  175.    character set above (<URN chars>).  Such strings MUST be translated
  176.    into canonical NSS format before using them as protocol elements or
  177.    otherwise passing them on to other applications. Translation is done
  178.    by encoding each character outside the URN character set as a
  179.    sequence of one to six octets using UTF-8 encoding, and the encoding
  180.    of each of those octets as "%" followed by two characters from the
  181.    <hex> character set above. The two characters give the hexadecimal
  182.    representation of that octet.
  183.  
  184.    Namespaces MAY designate one or more characters from the URN
  185.    character set as having special meaning for that namespace. If the
  186.    namespace also uses that character in a literal sense as well, the
  187.    character used in a literal sense must be encoded with "%" followed
  188.    by the hexadecimal representation of that octet.  Therefore, the
  189.    process of registering a namespace identifier shall include
  190.    publication of a definition of which characters have a special
  191.    meaning and how to encode these characters if used in a literal
  192.    sense.
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199. Expires 5/19/97                                                 [Page 3]
  200.  
  201.  
  202.  
  203.  
  204.  
  205. INTERNET DRAFT                 URN Syntax                  November 1996
  206.  
  207.  
  208. 3. Support of existing legacy naming systems and new naming systems
  209.  
  210.    URN-aware applications MAY accept as input other resource identifiers
  211.    from existing legacy namespaces.  If such identifiers contain
  212.    characters that are not members of the URN character set specified in
  213.    section 2.2, the identifier MUST be translated to canonical format as
  214.    discussed in section 2.2.
  215.  
  216.    Some existing name spaces that have the properties of the URN-space
  217.    contain some human-significant components, and these exist in a wide
  218.    variety of languages.  However, URNs are NOT intended to convey
  219.    information that is significant to humans.  While the translation
  220.    rule in section 2.2 is provided for existing namespaces, new
  221.    namespaces, as part of their registration documentation, MUST define
  222.    a discipline for assigning new URNs that does not simplify the
  223.    generation of human-significant names.
  224.  
  225. 4. URN presentation and transport
  226.  
  227.    URN-aware applications MAY support "natural" display of URNs which
  228.    contain characters encoded using "%" notation.  However, they MUST
  229.    provide for display of URNs in canonical form (i.e. in a format
  230.    suitable for transcription).
  231.  
  232.    URNs may only be transported in canonical format.
  233.  
  234. 5. Equivalence in URNs
  235.  
  236. URNs are considered equivalent if they return the same resource.  For
  237. various purposes, such as caching, a test is necessary to determine
  238. equivalence without actually resolving the URNs and fetching/comparing
  239. the underlying resources.  "Lexical equivalence" is a stricter condition
  240. that the equivalence described above (functional equivalence).
  241.  
  242. 5.1 Lexical Equivalence
  243.  
  244.    Lexical equivalence may be determined by comparing two URNs without
  245.    making any network accesses. Two URNs are lexically equivalent if
  246.    they are octet-by-octet equal after the following preprocessing
  247.  
  248.            1. drop any preceding "urn:" token
  249.            2. normalize the case of the NID
  250.  
  251.    Some namespaces may define additional lexical equivalences, such as
  252.    case-insensitivity of the NSS (or parts thereof).  Additional lexical
  253.    equivalences MUST be documented as part of namespace registration,
  254.    MUST always have the effect of eliminating some of the false
  255.    negatives obtained by the procedure above, and MUST NEVER says that
  256.  
  257.  
  258.  
  259. Expires 5/19/97                                                 [Page 4]
  260.  
  261.  
  262.  
  263.  
  264.  
  265. INTERNET DRAFT                 URN Syntax                  November 1996
  266.  
  267.  
  268.    two URNs are not equivalent if the procedure above says they are
  269.    equivalent.
  270.  
  271. 5.2 Functional Equivalence
  272.  
  273.    Resolvers determine functional equivalence based on specific rules
  274.    for the namespace.  Therefore, namespace registration must include
  275.    documentation on how to determine functional equivalence for that
  276.    namespace.
  277.  
  278. 5.3 Examples
  279.  
  280.    The following URN comparisons highlight the difference between these
  281.    types of equivalence:
  282.  
  283.      urn:isbn:1-23485-8-29, isbn:1-23485-8-29 are lexically equiv.
  284.      urn:isbn:1-23485-8-29, ISBN:1-23485-8-29 are lexically equiv.
  285.      urn:isbn:1-23485-8-29, isbn:123485829 are not lexically equiv.
  286.         but may be functionally equivalent.
  287.  
  288. 6. Security considerations
  289.  
  290.    Because of the number of potential namespaces, it must be restated
  291.    that certain of the characters in the Namespace Specific String may
  292.    have special meaning to certain namespace resolvers.  The process of
  293.    registering a namespace identifier shall therefore include
  294.    publication of a definition of which characters have a special
  295.    meaning.
  296.  
  297. 7. Acknowledgments
  298.  
  299.    Thanks to various members of the URN working group and <<your name
  300.    here!!>> for comments on earlier drafts of this document.  This
  301.    document is partially supported by the National Science Foundation.
  302.  
  303. 8. References
  304.  
  305.    Request For Comments (RFC) and Internet Draft documents are available
  306.    from <URL:ftp://ftp.internic.net> and numerous mirror sites.
  307.  
  308.          [1]         L. L. Daigle, P. Faltstrom, R. Iannella.  "A Frame-
  309.                      work for the Assignment and Resolution of Uniform
  310.                      Resource Names," Internet Draft (work in progress).
  311.                      June 1996.
  312.  
  313.  
  314.          [2]         K. Sollins, L. Masinter.  "Functional Requirements
  315.                      for Uniform Resource Names," RFC 1737.  December
  316.  
  317.  
  318.  
  319. Expires 5/19/97                                                 [Page 5]
  320.  
  321.  
  322.  
  323.  
  324.  
  325. INTERNET DRAFT                 URN Syntax                  November 1996
  326.  
  327.  
  328.                      1994.
  329.  
  330.  
  331.          [3]         T. Berners-Lee. "Universal Resource Identifiers in
  332.                      WWW," RFC 1630. June 1994.
  333.  
  334.  
  335.          [4]         T. Berners-Lee, L. Masinter, M. McCahill. "Uniform
  336.                      Resource Locators (URL)," RFC 1738.  December 1994.
  337.  
  338. 9. Editor's address
  339.  
  340.    Ryan Moats
  341.    AT&T
  342.    15621 Drexel Circle
  343.    Omaha, NE 68135-2358
  344.    USA
  345.  
  346.    Phone:  +1 402 894-9456
  347.    EMail:  jayhawk@ds.internic.net
  348.  
  349.  
  350.                  This Internet Draft expires May 19, 1997.
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379. Expires 5/19/97                                                 [Page 6]
  380.  
  381.  
  382.